技术 - 经济范式”视角下的开源软件演进剖析(四)
| 作者:刘博| 转载自:华为云开发者社区| 编辑:王玥敏| 设计:李静雯
整个系列文章将分成五篇文章,阐述宏观、中观、微观三个部分:
* 分别在三层面上分析开源软件出现的原因及动力问题
* 在中观层面分析开源软件对产业带来的影响
* 在微观层面分析开源软件社区的组织特征及生产方式
本篇将从微观层面分析开源软件社区的组织特征及生产方式。
1
微观层面
个体动机
在开源软件发展之初, 商业组织的投入很少甚至没有, 完全是靠 Richard Stallman 或者 linus Torvalds 这样的个人在努力推动开源软件艰难前行。
甚至在开源文化及商业化相当成熟之后,很多开源项目还是只能依靠个人的力量在艰难维系着。以 OpenSSL 项目 (互联网中三分之二的网站会用到它) 为例, 到 2011 年底,其发展了 10 多年之后, 还只有一个专职人员, 每年 OpenSSL 基金会收到的捐款不超过 2000 美元, 签署的合同收入不超过 100 万美元, 除去负担项目运转的费用之后, 所剩无几, 完全没法负担更多的工作人员. 只能靠核心人员 Stephen Henson 苦苦支撑,他自己也无法从项目中获得丰厚的收入。
那么在微观层面, 是什么动力在驱动 Stephen Henson 这样的个人参与开源软件的活动呢 ?
在 OSS 群体中存在相当显著的异质性。群体中个体之间的差异表现在动机的差异、技术水平的差异、开发成本的差异和收益的差异等方面。这些方面的差异使得整个群体显得较为复杂。但这些差异中最本质的差异在于开发成本的差异,开发成本的差异能够解释其它大部分方面的差异。通过分析以成本差异为标准所划分的细分群体的行为,为清晰刻画 OSS 的供给动机提供了可行。
两个主要细分群体:
通过对个人参与 OSS 开发的成本,我们能够清楚地将参与者分为两个明显的细分群体:高技术能力的开发者和低技术能力的开发者。这两类群体在激励动机上、在投入成本上有着非常大的差别,因而他们对于 OSS 自愿贡献的激励机制也完全不同,最终体现在对于 OSS 供给的数量、质量上的差别。
第一类群体,即高技术能力的开发者,这类群体主要由 OSS 的创建人、OSS 项目组织中的核心开发者组成,是 OSS 项目的主要管理者和程序的主要编写者。他们的数量在整个 OSS 参与者中只占很小的部分。但他们对于 OSS 有决定性的贡献。我们在后面称这类群体为精英群体。精英群体已经具备了较高的技术水平,因而,通过加入 OSS 群体进行专业的学习和训练不是他们的目的。他们也不会仅仅因为获得参与的感觉而加入 OSS 群体,因为他们本身就是 OSS 的创建者和主导者. 可推断出他们加入 OSS 的主要动机,那就是:声望的提高、发送能力信号、解决自己对于软件的需求和政治信仰等。
第二类群体为低技术能力的开发者。这类群体占了 OSS 参与者中的大多数,包括具备初步软件知识的使用者、发现软件中存在 bug 的问题报告者、尝试提供部分源代码的学习者等。我们称这类群体为学习群体。学习群体由于技术能力的限制,也许投入的成本相当高,但也只能对程序的开发提供少量的贡献。这些贡献如此之小,以至于不能期望获得什么声望,也不能期望因此而被商业软件公司青睐。但是,这些成本的投入对个人能力的提高却是必不可少的。软件开发工作的学习曲线较为陡峭,只有靠不断累积的投入才能使得个人的技能提高,使投入的成本逐渐降低,他们对 OSS 贡献投入的过程就是技术水平提高的过程。因而,学习群体的参与动机和第一类群体有显著的不同。学习群体的特征入下:
占 OSS 群体中的大多数; 技术水平低,单位投入成本较高,同时边际投入成本随着投入量的增加而下降; 无法获得直接收益和选择性激励带来的收益; 主要动机是获得学习收益。
首先,由于计算机相关技术的广泛应用,吸引更多的人加入到程序员的队伍中,因而尽管学习群体中已经达到从业技能水平的开发者脱离了这一群体,但有更多的新的学习者加入进来,所以学习群体的规模能够得到不断的补充和扩大。
其次,部分达到目的而脱离了学习群体的开发者会受到声誉、能力信号发送等动机的激励加入到精英群体中。由于学习群体规模的庞大,即使是其中的一小部分加入到精英群体中,也足以支撑精英群体的规模不断壮大。
我们从对两类细分群体的供给行为中看到,他们对 OSS 的供给不仅仅是从 OSS 作为公共产品的动机出发的,选择性激励和学习激励使得他们有了额外的私人动机去增加对公共产品的供给,因而他们对公共产品的总供给必然大于传统公共产品理论中的供给量。
另一方面,虽然在选择性激励和学习激励的情况下,供给增加了,但由于 OSS 的开发者不是从社会福利最大化的角度来决定他们的供给行为,因而他们的对公共产品的供给水平和社会需要的最优供给水平没有必然的关系,可能供给不足,也有可能供给过量。
所以,从长期看来,这两类群体的规模都在不断扩大之中,形成了 OSS 快速发展的基础。
OSS 的供给不是通过市场机制来实现的,不需要通过价格来实现供需的平衡。只要激励的因素存在,OSS 的供给就会持续下去。我们通过对精英群体和学习群体供给变动的分析可以看到,虽然软件会变得越来越复杂,但随着技术进步而导致的开发成本和学习成本的下降,以及群体规模的不断扩大,OSS 的供给量必然会持续增加。
马克思在《资本论》中有这样的阐述:“各种经济时代的区别,不在于生产什么,而在于怎样生产,用什么劳动资料生产。”
开源是一种生产协作模式,在这个生产模式之上可以设计不同的商业模式。从经济学角度讲,开源带来的突破主要体现在『商品供给侧的交付效率』,通过开源软件协作网络可以更高效的生产软件商品、交付软件商品。
软件产品传统的生产组织方式和其他产品一样主要有两种:企业的组织方式和市场的组织方式。以企业方式组织的生产,利用企业的资源在企业内部完成,如微软、甲骨文等公司的软件开发。以市场契约的组织方式,生产要素在市场中通过相互契约完成,如程序的外包开发等。
选择市场的组织方式还是企业的组织方式取决于组织成本和交易成本(使用价格机制)的比较。组织成本和交易成本的变化将使得市场和企业的规模、结构发生改变。在近二十年中,互联网等技术的发展导致了信息成本和合作成本的大幅下降。
借助互联网再加上软件产品的特殊性质, 使得它成为人类历史上第一种整个社会生产过程包括生产、分配、交换、消费完全无需物理接触, 全部可以在线完成的人工产品。
按照交易成本的理论,这必然会催生出新的生产组织方式,以便能充分利用这些变化所产生的潜在利益。而这些新出现的组织方式结构可能是令人惊异的,也许是传统的企业理论难以解释的。
01
—
开源社区的生产是一种新组织形式
开源社区群体的组织方式和企业的组织方式有着非常大的区别。
虽然 Raymond 对 OSS 开发组织的描述很精彩,他对这种组织结构特征的描述也是正确的,但他并没有再深入下去分析 OSS 开发组织和企业组织、和市场组织到底有什么本质的差异。
a. 非层级组织
b. 自我组织
企业是被组织的组织。企业的建立有明确的目标——获得利润,在这一目标下企业以强有力的控制手段将各种资源组织起来进行生产活动。而 OSS 开发群体和企业完全不同,是一个自我组织。OSS 开发群体自我组织的特征体现在几个方面:组织在没有外界强制力的情况下自发形成;组织缺乏稳定性,没有明确、固定的组织目标,发展不可预期,也没有明确的组织边界。OSS 开发组织的形成实在没有外部强制力的情况下实现的。最初的参与者为了开发出满足自己使用需要的软件或改进软件的性能而自然聚集起来,在合作的过程中逐渐形成一些简单的合作规则,并不断吸引其他人参与进来。整个软件的开发过程是在简单的规则指导下,由参与者自愿合作实现的,没有任何强制性的指令、计划。参与者自愿领受任务,独自完成任务,并可在完成任务过程中得到其他参与者自愿的帮助。
OSS 开发组织的目标中可以简单归纳为开发出能够更好满足应用需求、质量更高的软件。但这一目标是非常模糊的,因为需求是不断产生的,甚至可以说是没有尽头的。
另一方面,因为没有如企业那样的层级结构,所以组织中没有强有力的管理阶层,组织的发展也就没有控制,更依赖于对软件需求的演进。因而从单个项目的开发群体来看,组织的发展有比较多的不确定性。
c. 分布式平行结构
OSS 开发群体是一个分布式的结构组织。在组织中,每个参与者都是一个独立的决策中心,他们不会得到上级的指令、计划,而是根据自己搜集到的信息进行分析、判断,决定自己的行动。同时,每个参与者也是一个独立的行动中心,他的行动完全按照自己的意愿进行,不会受到任何人的监督和控制。所以,即使在一个 OSS 开发项目中,也可能会存在多个的决策中心和行动中心。OSS 开发群体的分布式结构决定了它也是一个平行的组织。在任何时点,都可以同时存在大量平行的决策中心和行动中心,这为软件开发的并行工作创造了条件。由于多个决策和行动中心的存在,可以同时承担若干个子任务。只要能够将任务尽可能多地分解成并行的子任务,就可以充分利用这种平行结构的优势。OSS 开发组织的分布式平行结构将其和企业区别开来,更像一个市场生产组织。开源社区和市场组织方式的区别
OSS 开发群体也不同于市场的生产组织方式。
首先,在市场的生产组织过程中,私有产权是必要的前提,是交易能够进行的基础。而在 OSS 中,所有产品都是共有产权,由于不存在私有产权,因此也就不存在基于价格机制基础上的交易行为。
其次, 从资源配置的角度来看二者也是不同的。市场对资源的配置是利用价格机制通过交易行为实现的。市场是在价格机制的基础上,由各个生产要素的所有者通过交易,将资源从使用效用较低的所有者手中转移到使用效用较高的所有者手中,从而实现资源的流动和配置。而在 OSS 组织中,生产资源都是无形资源,不存在消费的竞争性,所以资源可以共享。而参与者的人力资源的配置则是参与者根据其本人对使用效率情况的判断自愿投入的。
再次, 从合作实现的方式来看,两者也不同。市场中的生产是将生产分解成若干个部分,由互相独立的不同市场主体分别完成。各主体之间通过契约合同的方式进行相互的约束和合作。而 OSS 组织中的生产也是将工作分解成若干部分,由相互独立的参与者完成。这点和市场有相似之处。所不同的是,各主体之间的不存在相互约束,合作是在自愿的基础上而不是在契约基础之上实现的。
从合作的成本来看,OSS 开发组织更接近于企业内部的合作,而低于市场组织。在合作过程中,OSS 开发组织各参与者之间不需要契约约束,信息在组织中共享开放,参与者获得信息的成本和企业内部相似,所以合作的成本要低于市场。
因此,总的看来,虽然 OSS 开发组织和市场在生产过程中有相似之处,但它们之间的区别也是明显的。所以,我们可以认为 OSS 开发组织也不是一种市场组织。
和一般虚拟组织的区别
虽然 OSS 开发组织具备虚拟组织的三个主要特征,即存在组织成员能共享的利益或目标、在空间上分散、应用信息和通信技术进行相互沟通和管理,但是还是和现在已有的其它虚拟组织具有明显的区别。
第一个是组织边界的差异。一般的虚拟组织尽管也具有柔性的组织结构,组织成员不固定,组织可以根据特定的项目或利益目标随时调整,但它们一般在项目合作期间基本都是固定的,有明显的边界,能够明确地区分出哪些是组织内的成员,哪些不是。另外,加入这些虚拟组织也具有一定的门槛,新加入者一般需要得到其它已经加入者的认可。而在 OSS 开发组织中则不一样,它没有明显的组织边界,成员的流动性更大。
第二个是组织规模的差异。和一般的虚拟企业相比,OSS 开发组织的规模更大。OSS 开放组织中由于激励问题得到了解决,在采取共有产权制度的情况下能使组织的规模无限扩大,其成员数以百万、遍布全世界,完全脱离区域的限制。而一般的虚拟组织则会随着组织规模的增大将会遇到搭便车困境,其规模扩张有限。
第三个是组织复杂程度的差异。一般的虚拟组织组织成员数量有限,合作也往往以某一个方面为主,如信息的共享等。因此这决定了它们内部成员之间的关系还是相对简单的,在协调方面容易实现。但在 OSS 开发组织中,成员数量规模巨大,成员之间的合作涉及了数十万个同时进行的项目,成员之间不存在任何固定的关系,随时在变化。Raymond 将这种复杂的关系以“一个巨大的、有各种不同议程和方法的乱哄哄的集市”来形容,这表明 OSS 开发组织的复杂程度远远不是一般虚拟组织能够相提并论的。
OSS是自组分布式的生产组织
02
—
开源社区生产组织方式的竞争优势
a. 创新能力
传统理论认为,企业组织是产品开发和创新的中心。因为只有企业这样的组织才有机会将其开发和创新的产品销售给所有的用户,而个人创新者只能期望从自己对产品的使用中受益。另外,只有企业具备将产品广泛推广并给予后续支持、服务的能力。因而,企业才是合乎逻辑的产品开发者和创新者。然而以企业方式实现产品创新不仅存在这时间上滞后的问题,更严重的问题是由于需要使用者和企业之间多次的信息交流和反馈,必然会产生信息的损耗,削弱了创新的基础。所以,最优的产品创新应当是由使用者自己来完成。但在传统的产品和技术环境下,由于使用者往往不具有足够的创新能力和创新的传播能力,因而以企业的方式实现产品创新才成为主流。从这点看来,我们可以认为以企业方式进行的产品创新是一个次优的选择。企业之外进行的创新很多是由使用者共同合作实现的。使用者们或者通过面对面、或者通过通讯、期刊杂志等方式进行沟通联系和交流,形成一个松散的组织。最近的一些研究发现在这样组织中的个人倾向于让其他人免费分享自己的成果,并经常接受其他人的帮助。他们经常应用自己和群体的知识设计改进产品,经常根据自己的需要量身定做产品。这样的组织被经济学家称为用户创新群体(user innovation communities)。
用户创新群体是由一些有共同兴趣的个人以松散的方式形成,成员可以自由的加入和退出,因而这类组织缺乏正式的协作方式。从经济学家的观点看来,分布式的、分散的组织在创新方面比层级的结构更具有创新的能力。正是因为这种组织特点,创新者有了最大的创新自由,没有人会阻止他们引入新的思想,他们也不必因为要做某项工作而等待任何人的命令。更为重要的是,开发者们可以按照支持独立工作的标准协议进行独自的工作,这意味着他们不必为了某些特定的资源而被迫等待。同时,非正式和创新者自由的创新空间使得大量的信息和反馈在群体中出现,也吸引了具有不同技术和需求的个人的参与,这使得组织具备了更强的创新能力和解决问题的能力。
Raymond 通过自己的实践,得出“把用户当作协作开发者是快速改进代码和高效调试的无可争辩的方式”的结论。用户创新群体虽然存在已久,但并没有形成普遍的趋势。但在二十世纪八十年代末开始的信息技术的迅猛发展使这一形式得以改变。信息技术的发展使使用者能够掌握更多关于产品的信息和技术,获得了更强的创新能力。同时,信息技术也使得使用者创新传播的能力大幅提高,增强了使用者创新的激励和共享能力。OSS 开发组织就是这种变化的典型。软件开发是一种知识密集的产业,对创新要求很高。事实上,在软件产生的初期,很多软件的创新都是由使用者完成的,OSS 开发组织的原型就是规模和数量都比较小的用户开发群体。在信息技术迅速发展的情况下,对创新的迫切要求使软件的用户创新群体在规模和数量上以令人吃惊的速度扩张,终于形成了现在我们所看到的 OSS 开发群体这样一个规模庞大、在产业中具有举足轻重作用的组织。
b. 交易成本
相对于企业的组织方式,OSS 开发组织能够节省更多的交易成本。OSS 开发组织的共有产权制度使生产资源具有了开放性。开放性使人们获得资源变得更加容易和便宜,人们可以非常轻松地为自己找到参与软件开发工作所需要的资源,也能方便地将自己的资源和其他人共享。同时,开放性消除了谈判的成本,而充分的资源降低了参与者的决策成本。
另外从组织结构的角度来看, 对于软件产业,模块化开发的特点使得 OSS 开发组织的生产方式能够降低交易成本。而且 OSS 开发组织比企业组织更适合于模块化的工作方式。OSS 开发组织的组织特点有效地克服了“信息隐藏”的问题,因而可以更加容易实现模块化。在 OSS 开发组织中,由于软件开发整个过程的公开性和使用免费,以及足够多的参与者,信息的交流和公开是充分的,在一定程度上解决了信息隐藏的问题。同时,由于 OSS 开发组织具有较强的适应能力和柔性,能够根据具体情况的变化不断调整模块框架,所以在 OSS 开发组织中通过模块化将任务分解是可行的。相对来讲,软件厂商由于组织结构的特点不能很好地解决信息隐藏的问题,所以面对复杂的项目,模块化的难度较高,将会付出更高的成本。
虽然 OSS 开发组织中存在较大不确定性,但不一定就增加了组织的交易成本。不确定性导致了有限理性和机会主义的产生,因而增加了交易成本。但在 OSS 开发组织中,由于组织中选择的激励机制,成员是自愿参与的。所以,即使较高的不确定性也不会导致机会主义倾向。而由于 OSS 开发组织中共有产权的制度,有限理性也不会产生在传统组织中不完全合约情况下的一系列谈判、监督和强制实施的成本。OSS 开发组织中较高的不确定性虽然对于单个项目来说是不利的,即项目的发展缺乏强有力的保障和支撑者,但对于整个 OSS 群体来讲却是有利的。较高的不确定性在群体中创造了一种更加符合自然淘汰法则的环境,在高淘汰率的情况下能够生存下来的单个项目将具有更强的竞争力。
和市场组织相比,OSS 开发组织也具有交易成本的优势。市场组织过程是一个基本的价值发现过程。和层级式的企业相比,市场过程使合作协调的能力下降,即市场中能够有效使用信息的参与者获得信息的能力下降,也就使得市场的组织能力下降。但在 OSS 开发组织中,共有产权制度和信息技术的广泛应用消除了信息流动的障碍,并提高了参与者获得信息的能力。所以和市场相比,OSS 开发组织具有更强的组织能力。
c. 资源配置的效率
OSS 开发组织的工作模式提供了一种能够更有效地配置人力资本投入的方式。首先,OSS 开发组织中“各尽所能”承担工作任务的方式有效地减轻了信息不对称的程度,提高了资源配置的准确性。在信息经济学看来,组织中成员的能力状况、工作意愿、努力程度等信息为私人信息 (Private Information),除了成员自己清楚外别人都不可能十分了解,这就产生了信息不对称的问题。在企业组织中,管理者虽然可以通过各种方式手段来监督、激励组织成员,但这也是要付出成本的。管理者必须要权衡这些成本,所以信息不对称的问题不可能完全解决。
在这种信息不对称的情况下,企业组织的管理者对于组织中成员的工作能力并不能够完全了解,因而通过计划指令的方式安排给组织成员的工作并不一定能够和成员自身的资源状况相匹配,这将会造成由于对个人能力的错误评价及在此基础上错误的安排而产生的损失,以及为了修正这样的错误而发生的成本。
而在 OSS 开发组织中,采取了各尽所能的工作方式——参与者自我选择地承担任务,因此任务的安排实际上是由最了解参与者私人信息的人——参与者本人来进行的,这就有效地解决了信息不对称的问题,将资源和任务匹配起来,达到了较高的效率。
和市场相比,OSS 开发组织的生产组织模式既不需要价格体系的参与,也不需要契约合同(由于人力资本是隐性信息,获得于此相关的完全信息极为困难),它允许个人对自己能力进行评价,找出最适合自己的任务。允许不受限制的人使用不受限制的资源,也不会发生市场中的交易成本和企业中的组织成本。
其次,相对于企业组织,由于 OSS 开发组织具有大的多的规模(数百万的参与者和几十万个项目),使资源配置的可行集更大,资源流动的范围更广、限制更少,竞争更充分,因此资源的使用效率提高。
在企业组织内部和市场中,各主体内部和外部之间有明显的边界壁垒,避免自己的资源流出。如企业对自己的实物资本、资金资本、人力资本有很强的控制力,即使企业不具有竞争优势,也会努力限制这些资源从自己的组织流向更具有竞争力的组织。但在 OSS 开发组织的整个群体中,项目之间不存在资源流动的壁垒,在组织内具有竞争优势的项目能够更加容易吸引参与者加入,获得更多的资源。而没有竞争力的项目则无法阻止资源的流失。在这种情况下,整个群体中竞争更加公平和充分,资源能够更顺利地自动流向利用效率高的项目。另一方面,OSS 开发组织的规模远大于单个企业,所以资源实际上是在更大的范围内进行配置的,配置的可行集更大,这为配置效率的提高创造了条件。
最后,OSS 开发组织中较高的淘汰率表明,资源的流动速度较快,能够迅速地从使用效率低的项目中流向使用效率高的项目,从而提高了 OSS 开发组织整体的资源利用效率。
d. 灵活性和适应性
OSS 的组织方式使 OSS 开发组织比企业组织具有更强的对快速变化环境的适应能力。首先,OSS 开发组织分布式的组织结构,具有比企业层级组织更敏锐的触觉和更强的行动能力。
其次,OSS 开发组织中的各个项目团队是没有明确边界的开放组织,因而组织规模能够随着变化的需要灵活地进行调整。
OSS 开发组织的上述特点使其具有了非常大的灵活性和适应性,能够敏锐地感觉到需求的变化和技术环境的变化,并能够很快地适应这些变化。这是 OSS 开发组织群体能够迅速壮大的重要原因。
通过以上的分析,我们可以看到,OSS 开发组织的成功有其必然的原因。在新经济的环境中,OSS 开发组织的具有的竞争优势被逐步激发出来,成为了能够和传统企业生产方式分庭抗礼的重要力量。
03
—
自组分布式生产组织方式的应用趋势
以分布的形式组织生产必须要面对的一个重要问题是,由于生产过程是由在空间分散的个体完成的,那么如果生产过程中需要对产品的零部件、半成品进行组合、装配,有可能会产生更多的交通运输成本。从这个角度来说,知识产品比传统的产品更适于应用分布式的生产方式,因为知识的流动、转移不会产生额外的交通运输费用。而对传统的有形产品,由于分布式生产可能会额外增加大量的移动运输成本,分布式生产组织方式的应用将会受到限制。因此,在知识产品领域中,自组分布式的生产组织方式更容易实现。
虽然自组分布式的生产方式最适合于知识产品的生产,但现实中仍然存在大量的知识产品是由企业集中生产的,如商业软件、商业数据库等。这说明,必然有某些因素制约了这种自组分布式生产方式的应用。我们认为,OSS 的自组分布式生产组织方式没有能够在知识产品领域中大范围应用,主要是生产激励的问题没有能够得到解决。
共有产权制度和自组分布式的生产组织方式有着必然的联系。自组分布式的生产组织方式的前提是资源的共享,在资源共享的前提下它的竞争优势才能够发挥出来。这也是私有产权知识产品的生产企业无法复制这种生产组织方式的原因。但是,由于知识产品复制和转移成本几乎为零的经济特性,相对于传统的有形产品,将知识产品资源的共享保持在局部的利益共同体中难度更大,特别是当参与分布式生产的个体规模较大时,局部的共享经常会导致实质上普遍的共有产权,搭便车的问题就会大量出现。因此,共有产权虽然对于整个群体有利,但并不能保证是一个纳什均衡,这取决于支付矩阵,即个体受到的激励程度。在 OSS 的开发中,选择激励解决了公共产品生产的激励问题,所以 OSS 能够获得成功。但是,对于相当一部分的知识产业,激励问题仍然还没有被解决。
*本文图片来源网络,如有侵权请联系删除!
开源社简介
开源社是由国内外支持开源的企业,社区及个人,依“贡献,共识,共治”原则,所组织的厂商中立、纯志愿者、非营利的开源联盟,旨在共创健康可持续发展的开源生态体系,并推动中国开源社区成为全球开源软件的积极参与及贡献者。我们专注于开源治理、国际接轨、社区发展和开源项目。
相关阅读 | Related Reading
技术-经济范式视角下的开源软件演进剖析(三)
技术-经济范式视角下的开源软件演进剖析(二)
技术-经济范式视角下的开源软件演进剖析(一)